package com.qq.server.model;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JFrame;

import com.qq.common.Massage;
import com.qq.common.User;
import com.server.db.SqlHelper;

public class MyQqServer  {
	
	//在这里MyQqServer是在MyServerFrame中通过监听得到的，
	    public MyQqServer(){
	 	try {
	 	System.out.println("9999监听");
		ServerSocket ss=new ServerSocket(9999);
		while(true){
	    Socket s=ss.accept();
	    //因为服务端先开启，所以当QqClientConServer连接时，将匹配。
	    ObjectInputStream ois=new ObjectInputStream(s.getInputStream());;
	    //用User类强制接收
	   	User u=(User)ois.readObject();
	   	Massage m=new Massage();
	   	//发送
	   	ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
	   	//先判断是否是123456，如果是则返回1。
	   	SqlHelper sqlhelper=new SqlHelper();
	   	ResultSet rs=null;
	   	rs=sqlhelper.GetUser(u.getUserId(), u.getPassWord());
	   	if(rs.next()){
	   		//返回成功的信息包
	   		m.setMesType("1");
	   		oos.writeObject(m);
	   		
	   		//单开一个线程，让该线程与客服端连接。
	   		ServerClientTreader sct=new ServerClientTreader(s);
	   		//存入hashmap中。
	   		ZongClientThread.addclientThread(u.getUserId(),sct);
	   		sct.start();
	   		//并通知在线用户。
	   		sct.notifOther(u.getUserId());
	   	}else{
	   		m.setMesType("2");
	   		oos.writeObject(m);
	   		//关闭连接
	   		s.close();
	   	}
	   	
		}
		
	 	} catch (IOException e) {
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
				e.printStackTrace();
			}
	    
	  
	    }
}
